//
// This software is now distributed according to
// the Lesser Gnu Public License. Please see
// http://www.gnu.org/copyleft/lesser.txt for
// the details.
// -- Happy Computing!
//
package com.stevesoft.pat;

import java.util.Hashtable;

/**
 * Implements the (?&lt;number) Pattern, where number is an integer telling us
 * how far to back up in the Pattern. Not in perl 5.
 */
class Skipped extends Pattern {

	String s;

	Skipped(String s) {
		this.s = s;
	}

	public String toString() {
		return s + nextString();
	}

	public int matchInternal(int pos, Pthings pt) {
		// if(pt.no_check ||
		// s.regionMatches(pt.ignoreCase,0,pt.src,pos,s.length()))
		if (pt.no_check || CaseMgr.regionMatches(s, pt.ignoreCase, 0, pt.src, pos, s.length()))
			return nextMatch(pos + s.length(), pt);
		return -1;
	}

	public patInt minChars() {
		return new patInt(s.length());
	}

	public patInt maxChars() {
		return new patInt(s.length());
	}

	Pattern clone1(Hashtable h) {
		return new Skipped(s);
	}
};
